import { postBody, postDownload, postUploadFile } from '@vh-admin/pro-services';

export function getPublicAreaPlate(data: any) {
  return postBody('/api/areaPlate', data);
}

/**
 * 上传文件
 */
export async function uploadFile(data: any) {
  return postUploadFile('/api/public/upload/file', data);
}

/**
 * 获取资源服务的签名
 */
export const uploadAuth = (data: any) => {
  return postBody('/api/public/upload/auth', data);
};

// /**
//  * 上传到云服务器
//  */
// export const aliyunOss = async (formData: any) => {
//   const file = formData.get('file');
//   const path = formData.get('path');
//   const name = file.name;
//   try {
//     const res: any = await uploadAuth({
//       path: path,
//       name: name,
//     });
//     const { clientName, ...config }: any = res.data;
//     const client = new OSS(config);
//     // const result = await client.list(null, {});
//     // console.log(result);
//      const newName = `${config.filePath}${config.fileId}_${clientName}`;
//     const fileRes = await client.put(newName, file);
//     // console.log(fileRes);
//     return { data: { src: fileRes.url } };
//   } catch (error: any) {
//     message.error(error.message);
//     throw new Error(error);
//   }
// };

// /**
//  * 上传到云服务器-分片上传
//  * @param formData
//  * @returns
//  */
// export const aliyunOssMultipartUpload = async (formData: any, ref: any) => {
//   const file = formData.get('file');
//   const path = formData.get('path');
//   const name = file.name;
//   try {
//     const res: any = await uploadAuth({
//       path: path,
//       name: name,
//     });
//     const { clientName, url, ...config }: any = res.data;
//     const client = new OSS(config);
//     // const headers = {
//     //   // 指定该Object被下载时的网页缓存行为。
//     //   "Cache-Control": "no-cache",
//     //   // 指定该Object被下载时的名称。
//     //   "Content-Disposition": "example.txt",
//     //   // 指定该Object被下载时的内容编码格式。
//     //   "Content-Encoding": "utf-8",
//     //   // 指定过期时间，单位为毫秒。
//     //   Expires: "1000",
//     //   // 指定Object的存储类型。
//     //   "x-oss-storage-class": "Standard",
//     //   // 指定Object标签，可同时设置多个标签。
//     //   "x-oss-tagging": "Tag1=1&Tag2=2",
//     //   // 指定初始化分片上传时是否覆盖同名Object。此处设置为true，表示禁止覆盖同名Object。
//     //   "x-oss-forbid-overwrite": "true",
//     // };

//     const options = {
//       // 获取分片上传进度、断点和返回值。
//       progress: (p: any) => {
//         const fileList: any = [...ref.current.getFileListData()];
//         const pro: any = parseInt((p * 100)+'');
//         const has: any = fileList.find((i: any) => i.uid === file.uid);
//         const index: any = fileList.findIndex((i: any) => i.uid === file.uid);
//         const newItem: any = { ...has };
//         newItem.percent = pro;
//         fileList.splice(index, 1, newItem);
//         ref.current.setFileListData(fileList);

//         // const hide: any = message.loading(
//         //   { content: `上传进度：${pro + '%'}`, key: 'UploadProgress', duration: 0 },
//         //   0,
//         // );
//         // if (p >= 1) {
//         //   hide();
//         // }
//       },
//       // 设置并发上传的分片数量。
//       parallel: 4,
//       // 设置分片大小。默认值为1 MB，最小值为100 KB。
//       partSize: 1024 * 1024,
//       // headers,
//       // 自定义元数据，通过HeadObject接口可以获取Object的元数据。
//       // meta: { year: 2020, people: "test" },
//       // mime: "text/plain",
//     };
//     const fileRes = await client.multipartUpload(clientName, file, options);
//     const paths = fileRes.name.split('/');
//     paths[paths.length - 1] = encodeURIComponent(paths[paths.length - 1]);
//     const uri = url + '/' + paths.join('/');
//     return { data: { src: uri } };
//   } catch (error: any) {
//     message.error(error.message);
//     throw new Error(error);
//   }
// };

interface loginType {
  // 手机号
  mobile: string;
  // 密码
  password: any;
}

/**
 *
 * 获取图形验证码
 */
export async function captcha(data: any) {
  return postBody('/api/public/captcha', data);
}
/**
 *
 * 登陆
 */
export async function login(data: loginType) {
  return postBody('/api/auth/login', data);
}
/**
 * 获取用户信息
 *
 ** */
export async function getDictionaryConfig() {
  return postBody('/api/public/dictionary');
}

/**
 * 获取用户信息
 *
 ** */
export async function isLogin() {
  return postBody('/api/auth/isLogin');
}

/**
 * 获取退出
 *
 ** */
export async function logout() {
  return postBody('/api/auth/logout');
}
/**
 *修改用户信息
 *
 ** */
export async function editUserInfo(data: any) {
  return postBody('/api/public/edit/userinfo', data);
}

/**
 * 获取模型配置文件
 *
 ** */
export async function getModelConfig(data: any) {
  return postBody('/api/config/getModelConfig', data);
}

//下载数据库备份文件
export function proBackupsDownload(data: any) {
  return postDownload('/api/backups/download', data);
}
